package Code.Day4_20240921.com.dx.day04;

/**
 * @ClassName Test00
 * @Description static修饰value和function
 * @Author 12994
 * @Date 2024/9/21 10:27
 * @Version 1.0
 **/
public class Test00 {
    // 静态值, 在编译期获得初始值，在JVM加载class时就获得内存地址；
    // 之后new出来的对象会获得一个指向该值的指针；
    private static int a;

    // 静态方法不能直接访问动态值，因此和静态值类似，在JVM加载期运行一次，结果便已经指定
    private static void getValue() {
        System.out.println(a);
    }

    // 动态值(成员变量)与动态方法，在JVM加载时不运行，在new构造时获得一个相应对象的Copy；
    // 因此同一个类实例化的不同对象中的相同名称的变量实际上不是同一个变量；

    // 静态方法访问动态值，报错
    private int b;

    private static void getValueB() {
        // 这个b在JVM加载期不能指定是谁(对象还没new出来)
        // System.out.println(b);
    }
}
